1. Field of the Invention
The present invention relates to a system and method for arranging multiple certificates on a hardware token. More particularly, the invention relates a system and method for including multiple certificates on a hardware token so that a Windows 2000 single sign-on certificate is the first certificate.
2. Background
For centuries individuals, governments, and business entities have searched for mechanisms and techniques whereby sensitive information may be transmitted to authorized parties over long distances and still remain secure. The problem faced by the foregoing entities is how can information be sent to the individual or entities that require it and still be assured that unauthorized parties may not be able to comprehend the transmitted information should they intercept it. Early methods of securing information have employed scrambling techniques, lookup tables, substitution ciphers, and code books in which letters or terms would be substituted for the original letters and terms in the information. These techniques frequently required that both the sender and receiver of information have access to the same “code book.” One danger in such a technique is that the code book would fall into unauthorized hands.
In the early twentieth century, and in particular during World War II, code books were replaced by electromechanical cipher machines. Both the sender and receiver would have an identical cipher machine used to encrypt and decrypt messages sent. In order to make it more difficult to decrypt these messages the cipher machines have the ability to change the cipher used in a message or change the cipher used for every few words within a message. In order to accomplish this the cipher machine would need to know the initial state or key utilized to encrypt the message.
In recent years the cipher machines have been replaced by digital encryption algorithms in which both the sender and receiver have an identical copy of the digital encryption algorithm and a common key used to encrypt and decrypt messages. Both the encryption algorithm and key are held secret by both the sender and receiver.
More recently another encryption technique has been developed in which two separate keys are used for encryption and decryption. A public key is transmitted freely to whoever requires it and is used to encrypt messages for a particular receiver. The receiver would have an associated private key which may be used to decrypt the message encrypted with the associated public key. For each public key there is only one private key and for each private key there is only one public key. When sending a message to several recipients it is necessary to have each recipient's public key. The message would then be separately encrypted using each recipient's public key and transmitted to that particular recipient. Therefore, if ten separate entities are to receive the same message, ten separate messages would be transmitted with each message encrypted with individual's public key. With the advent of the Internet, such a public key infrastructure has gained significant acceptance as discussed in request for comments number 2459, by Ford et al., entitled “Internet X.509 Public Key Infrastructure”, herein incorporated in its entirety by reference.
In addition to the need for the encryption and decryption of messages, with the advent of electronic mail and the Internet a need has developed for a secure mechanism to indicate approval and acceptance by an individual. In the past an individual would typically show his approval or acceptance of such items as a contract or an order via a handwritten signature, a stamp, or a seal which would only be held by that individual. Anyone else that attempted to imitate such a signature, stamp, or seal would be subject to criminal penalties. With the advent of electronic mail and the Internet, a need has arisen to take advantage of the ease and speed of electronic mail to indicate, by a person or entity with proper authority, approval or acceptance of a contract or purchase. This has come to be known as a digital signature in which an individual may digitally sign a document.
This digital signature capability has been implemented using the same public key infrastructure previously discussed. However, instead of an entire document being encrypted, the document itself is passed through a one-way hashing algorithm that produces a small document, referred to as a digest. This digest is then encrypted using the individual's private key, also known as a private signing key, and is appended to the document. The receiver of the document can verify the authenticity of the digital signature (digest) by stripping the signature from the document and recomputing the hash function on the document to generate an as received digest. Using a public signing key, included in the document or previously received, it is possible to decrypt the digest of the document and compare it to the digest as received. If the two digests match, then the signature is authenticated. Therefore, using the aforementioned public key infrastructure it is possible to both encrypt and decrypt messages as well as digitally sign documents.
In order to set up a system to reliably determine the identity of an owner of a key pair, a digital certificate system has been utilized. That is, certificates contain information which identify the owner, the public component of the pair and the period of time for which the certificate is valid. It is also identifies technical information about the key itself, such as the algorithm used to generate it and the key length. These certificates are generated by organizations that are responsible for verifying the identity of the individuals. The identity of the certifying organization or certificate authority, is recorded in the certificate itself and signed by a private key known only to the certificate authority itself. This allows users to verify both the integrity of the certificate and the identity of the authority. By initializing a certificate, the authority is stating that it has verified that the public key that appears in the certificate belongs to the individual listed in the certificate. The process must provide mechanisms for reliably identifying the individual and for verifying the public key listed. Traditionally, the registration of new users has been the most labor intensive aspect of such a system. It is also the most critical component to insure the trustworthiness of certificates issued. The traditional manner of handling this is to physically go to a local registration authority and present identification to identify the user.
It is possible that a single individual will have more than one type of private key and digital signature. These keys can be generated by an authority in the system in the form of a digital certificate which identifies the public key and establishes the identity of the user. However, since a person may have different functions, it is possible that additional keys for each function may be necessary. Thus, if the person is part of a group which can authorize payments, it may be necessary to have a separate certificate for that particular role. In addition, different types of systems may require different types of certificates. Accordingly, a single person may have several certificates to keep track of. Remembering all these different keys may be difficult, especially if some are not used regularly.